package com.pig.sentinel.annotions;

import com.pig.sentinel.enums.ProcessTypeEnum;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 资源注解，有此注解的方法，会被控制流量或降级
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface Sentinel {
    /**
     * 定义的资源名
     *
     * @return
     */
    String resourceName();

    /**
     * 触发限流或降级后调用的方法
     *
     * @return
     */
    String exceptionHandler();

    /**
     * 类型
     *
     * @return
     */
    ProcessTypeEnum[] processType();
}
